나의 말:
ChatGPT의 말:
C++Builder의 VCL 컴포넌트를 기준으로 설명드리면, 크게 화면에 직접 보이는 컴포넌트와 보이지 않는 컴포넌트로 나눌 수 있습니다.
1. 기본 화면 컴포넌트
컴포넌트 용도 TLabel글자/설명 표시 TEdit한 줄 문자열 입력 TMemo여러 줄 문자열 입력 TButton버튼 TCheckBox체크/해제 선택 TRadioButton여러 항목 중 하나 선택 TGroupBox관련 컴포넌트를 묶는 영역 TPanel화면 영역을 나누거나 컨테이너로 사용 TScrollBox스크롤 가능한 영역 TImage이미지 표시 TShape사각형, 원 등의 도형 표시 예를 들어:
void __fastcall TForm1::Button1Click(TObject *Sender) { Label1->Caption = Edit1->Text; }Edit1에 입력한 내용을Label1에 표시하는 코드입니다.2. 선택/목록 관련 컴포넌트
컴포넌트 용도 TComboBox드롭다운 목록 TListBox목록 표시 TCheckListBox체크 가능한 목록 TListView아이콘/상세 정보가 있는 목록 TTreeView트리 구조 표시 TStringGrid문자열 기반 표 TDrawGrid직접 그리는 표 TSpinEdit숫자를 증가/감소시키며 입력 TTrackBar슬라이더 예를 들어
ComboBox에 항목을 추가하려면:ComboBox1->Items->Add("서울"); ComboBox1->Items->Add("부산"); ComboBox1->Items->Add("대구");3. 날짜/시간 관련
컴포넌트 용도 TDateTimePicker날짜/시간 선택 TMonthCalendar달력 표시 TCalendar달력 TTimer일정 시간마다 이벤트 발생 TTimer는 화면에 직접 표시되지 않는 대표적인 비시각적 컴포넌트입니다.void __fastcall TForm1::Timer1Timer(TObject *Sender) { Label1->Caption = TimeToStr(Now()); }4. 메뉴/툴바 관련
컴포넌트 용도 TMainMenu프로그램의 상단 메뉴 TPopupMenu마우스 우클릭 메뉴 TToolBar툴바 TStatusBar프로그램 하단 상태 표시줄 TActionList메뉴/버튼 등의 동작을 중앙 관리 TImageList메뉴/툴바 등에 사용할 이미지 관리 예:
파일 ├─ 새로 만들기 ├─ 열기 ├─ 저장 └─ 종료이런 메뉴를 만드는 데
TMainMenu를 사용합니다.5. 데이터베이스 관련
C++Builder에서 업무 프로그램을 만들 때 특히 많이 사용하는 영역입니다.
컴포넌트 용도 TDataSource데이터셋과 화면 컴포넌트 연결 TFDConnectionDB 연결 TFDQuerySQL 실행 TFDTable테이블 접근 TFDStoredProcStored Procedure 실행 TFDTransaction트랜잭션 관리 TDBEditDB 필드와 연결된 Edit TDBGridDB 데이터를 표 형태로 표시 TDBNavigator레코드 이동/추가/삭제 일반적인 구조는 다음과 같습니다.
DB ↓ TFDConnection ↓ TFDQuery ↓ TDataSource ↓ TDBGrid예를 들어:
FDQuery1->SQL->Text = "SELECT * FROM CUSTOMER"; FDQuery1->Open();그러면
TDataSource와TDBGrid를 연결해 놓은 경우 조회 결과가 그리드에 표시됩니다.6. 파일/폴더 관련
컴포넌트 용도 TOpenDialog파일 열기 TSaveDialog파일 저장 TFontDialog글꼴 선택 TColorDialog색상 선택 TPrintDialog인쇄 설정 TPrinterSetupDialog프린터 설정 TDirectoryListBox디렉터리 목록 TFileListBox파일 목록 예:
if (OpenDialog1->Execute()) { Memo1->Lines->LoadFromFile(OpenDialog1->FileName); }7. 컨테이너 컴포넌트
다른 컴포넌트를 안에 배치하는 데 사용합니다.
컴포넌트 특징 TPanel가장 기본적인 영역 분할 TGroupBox관련 항목 그룹화 TPageControl탭 화면 TTabControl탭 선택 기능 TScrollBox스크롤 영역 TSplitter영역 크기를 마우스로 조절 TFrame화면을 재사용 가능한 단위로 구성 특히 **
TFrame**은 규모가 있는 프로그램에서 매우 유용합니다.MainForm ├─ Frame_Login ├─ Frame_Customer ├─ Frame_Order └─ Frame_Report처럼 화면을 모듈화할 수 있습니다.
8. 그래픽 관련
컴포넌트 용도 TImage이미지 표시 TPaintBox직접 그림 그리기 TShape기본 도형 TImageList이미지 목록 관리 TChart그래프/차트 직접 그리기가 필요한 경우
TPaintBox의OnPaint이벤트 등을 사용합니다.void __fastcall TForm1::PaintBox1Paint(TObject *Sender) { PaintBox1->Canvas->MoveTo(10, 10); PaintBox1->Canvas->LineTo(200, 100); }9. 통신/네트워크 관련
C++Builder에는 네트워크 프로그램을 만들기 위한 컴포넌트들도 있습니다.
대표적으로:
TIdTCPClientTIdTCPServerTIdUDPClientTIdUDPServerTIdHTTPTIdFTPTIdSMTP
여기서
TId...계열은 Indy(Internet Direct) 컴포넌트입니다.예를 들어
TIdHTTP는 HTTP 통신에 사용할 수 있습니다.10. 비시각적 컴포넌트
폼에 배치했을 때 실행 화면에는 나타나지 않는 컴포넌트입니다.
대표적으로:
TTimerTDataSourceTFDConnectionTFDQueryTActionListTImageListTOpenDialogTSaveDialogTIdHTTP
IDE에서는 폼 아래쪽의 Non-Visual Components 영역에 표시되는 경우가 많습니다.
처음 공부한다면 이 순서가 좋습니다
TForm ↓ TLabel / TEdit / TButton ↓ TPanel / TGroupBox ↓ TComboBox / TListBox ↓ TStringGrid ↓ TTimer ↓ TMainMenu / TStatusBar ↓ TPageControl / TFrame ↓ TDataSource / TFDQuery / TDBGrid ↓ 이벤트 처리 ↓ Windows API / DLL / 통신 / DB특히 C++Builder는 컴포넌트 자체를 외우는 것보다
Component → Property → Event → Method구조를 이해하는 것이 중요합니다.예를 들어
TButton하나만 보더라도:TButton ├─ Property : Caption ├─ Property : Enabled ├─ Property : Visible ├─ Property : Color └─ Event : OnClick처럼 **속성(Property)**으로 상태를 설정하고, **이벤트(Event)**에서 동작을 구현하며, **메서드(Method)**를 호출해서 기능을 수행한다고 이해하면 다른 컴포넌트도 훨씬 쉽게 배울 수 있습니다.
ChatGPT는 AI라 실수할 수 있습니다.
어떤 작업을 하고 계신가요?오늘은 무엇을 해볼까요?
ChatGPT는 AI입니다. 사용하면 이용 약관 및 개인정보 처리방침, 한국 부록에 동의하게 됩니다. 채팅은 검토될 수 있으며 AI 모델 개선에 사용될 수 있습니다. 자세히 알아보기OpenAI OpCo, LLC대표자: Sam Altman주소: 1455 3rd Street, San Francisco, CA 94158전화: 02-735-2109https://help.openai.com/ko-kr사업자등록번호: 816-80-03326통신판매업신고번호: 2026-공정-0022이용 약관호스팅 서비스 제공: Microsoft Azure사업자 추가 정보